package com.loong.ems.service;

import com.loong.ems.domain.entity.EmpLeaveRecord;
import com.loong.ems.domain.vo.resp.EmpLeaveRecordVo;

import java.util.List;

/**
 * @author 龙勇-229970722
 * @date 2025-01-03 14:38
 * @description: 请假服务接口
 */
public interface EmpLeaveRecordService {
    /**
     * 获取请假记录列表
     * @return
     */
    List<EmpLeaveRecordVo> getLeaveRecordList();

    /**
     * 获取待审批请假记录列表
     * @return
     */
    List<EmpLeaveRecordVo> getPendingLeaveRecordList();

    /**
     * 获取待销假请假记录列表
     * @return
     */
    List<EmpLeaveRecordVo> getPendingLeaveCancelRecordList();

    /**
     * 添加请假记录
     * @param empLeaveRecord
     * @return
     */
    int addLeaveRecord(EmpLeaveRecord empLeaveRecord);

    /**
     * 删除请假记录
     * @param id
     * @return
     */
    int deleteLeaveRecord(Long id);

    /**
     * 获取请假人数
     * @return
     */
    int countLeave();

    /**
     * 根据用户id获取请假记录列表
     * @param userId
     * @return
     */
    List<EmpLeaveRecordVo> personLeave(Long userId);

    /**
     * 更新请假记录
     * @param empLeaveRecord
     * @return
     */
    int updateLeaveRecord(EmpLeaveRecord empLeaveRecord);
}
